package main

import "fmt"

func main() {
	array := [5]int{1, 2, 3, 4, 5}
	fmt.Printf("数组array地址%p\n", &array)
	s := array[:]
	fmt.Printf("切片s的内部数组地址%p\n", s)
	//将数组转化为切片，用的是:操作，len为前后索引之间的差，cap为开始索引到数组结尾的长度
	fmt.Println(len(s), cap(s), s)
	s1 := array[1:3]
	fmt.Printf("切片s1的内部数组地址%p\n", s1)
	//1:3->获取数据为2,3，因此len为2，从1到数组末尾的元素为4个，因此cap为4
	fmt.Println(len(s1), cap(s1), s1)
	//其实array，切片s，s1都是共用一个数组存储数据，只不过是s1指向的是数组索引为1的内存地址
}
